export default {
    isint: function(str) { // 判断输入是否是一个整数
        var result = str.match(/^(-|\+)?\d+$/);
        if (result == null) return false;
        return true;
    },
    isemail: function(str) { // 判断输入是否是有效的电子邮件
        var result = str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
        if (result == null) return false;
        return true;
    },
    trim: function(str) { // 去除字符串的首尾的空格
        return str.replace(/(^\s*)|(\s*$)/g, "");
    },
    isPhone: function(fData) { //手机号 移动号段：134、135、136、137、138、139、150、151、152、157、158、159、182、187、188、147号段；联通号段：130、131、132、155、156、186、145号段；电信号段：133、153、189号段。移动 147、 联通 145  均为数据卡号段
        var reg = /^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/i;
        return reg.test(fData);
    },
    isCardNo: function(card) {
        // 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X  
        var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
        return reg.test(card)
    },
    ispassword: function(str) {
        var s = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$/
        return s.test(str)
    },
    isinteger: function(str) { //正整数
        var s = /^[0-9]*[1-9][0-9]*$/
        return s.test(str)
    },
    isemoji: function(str) {

        return str.indexOf('[') == 0 && str.lastIndexOf(']') == str.length - 1
    },
    Encrypt: function(str, pwd) { //加密
        if (str == "") return "";
        str = escape(str);
        if (!pwd || pwd == "") {
            var pwd = "1234";
        }
        pwd = escape(pwd);
        if (pwd == null || pwd.length <= 0) {
            //	alert("Please enter a password with which to encrypt the message.");
            return null;
        }
        var prand = "";
        for (var I = 0; I < pwd.length; I++) {
            prand += pwd.charCodeAt(I).toString();
        }
        var sPos = Math.floor(prand.length / 5);
        var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2) + prand.charAt(sPos * 3) + prand.charAt(sPos * 4) + prand.charAt(sPos * 5));

        var incr = Math.ceil(pwd.length / 2);
        var modu = Math.pow(2, 31) - 1;
        if (mult < 2) {
            //alert("Algorithm cannot find a suitable hash. Please choose a different password. \nPossible considerations are to choose a more complex or longer password.");
            return null;
        }
        var salt = Math.round(Math.random() * 1000000000) % 100000000;
        prand += salt;
        while (prand.length > 10) {
            prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
        }
        prand = (mult * prand + incr) % modu;
        var enc_chr = "";
        var enc_str = "";
        for (var I = 0; I < str.length; I++) {
            enc_chr = parseInt(str.charCodeAt(I) ^ Math.floor((prand / modu) * 255));
            if (enc_chr < 16) {
                enc_str += "0" + enc_chr.toString(16);
            } else
                enc_str += enc_chr.toString(16);
            prand = (mult * prand + incr) % modu;
        }
        salt = salt.toString(16);
        while (salt.length < 8) salt = "0" + salt;
        enc_str += salt;
        return enc_str;
    },
    Decrypt: function(str, pwd) { //解密
        if (str == "") return "";
        if (!pwd || pwd == "") {
            var pwd = "1234";
        }
        pwd = escape(pwd);
        if (str == null || str.length < 8) {
            //alert("A salt value could not be extracted from the encrypted message because it's length is too short. The message cannot be decrypted.");
            return;
        }
        if (pwd == null || pwd.length <= 0) {
            //alert("Please enter a password with which to decrypt the message.");
            return;
        }
        var prand = "";
        for (var I = 0; I < pwd.length; I++) {
            prand += pwd.charCodeAt(I).toString();
        }
        var sPos = Math.floor(prand.length / 5);
        var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2) + prand.charAt(sPos * 3) + prand.charAt(sPos * 4) + prand.charAt(sPos * 5));
        var incr = Math.round(pwd.length / 2);
        var modu = Math.pow(2, 31) - 1;
        var salt = parseInt(str.substring(str.length - 8, str.length), 16);
        str = str.substring(0, str.length - 8);
        prand += salt;
        while (prand.length > 10) {
            prand = (parseInt(prand.substring(0, 10)) + parseInt(prand.substring(10, prand.length))).toString();
        }
        prand = (mult * prand + incr) % modu;
        var enc_chr = "";
        var enc_str = "";
        for (var I = 0; I < str.length; I += 2) {
            enc_chr = parseInt(parseInt(str.substring(I, I + 2), 16) ^ Math.floor((prand / modu) * 255));
            enc_str += String.fromCharCode(enc_chr);
            prand = (mult * prand + incr) % modu;
        }
        return unescape(enc_str);
    },
    getstorage: function(key) {
        if (sessionStorage.getItem(key)) {
            return sessionStorage.getItem(key)
        } else {
            return localStorage.getItem(key)
        }
        //return sessionStorage.getItem(key)!='underfind' :sessionStorage.getItem(key)?localStorage.getItem(key)
    },
    removestorage: function(key) {
        localStorage.removeItem(key);
        sessionStorage.removeItem(key);
    },
    browser: function() {
        var agent = navigator.userAgent.toLowerCase(),
            opera = window.opera,
            browser = {
                //检测当前浏览器是否为IE  
                ie: /(msie\s|trident.*rv:)([\w.]+)/.test(agent),
                //检测当前浏览器是否为Opera  
                opera: (!!opera && opera.version),
                //检测当前浏览器是否是webkit内核的浏览器  
                webkit: (agent.indexOf(' applewebkit/') > -1),
                //检测当前浏览器是否是运行在mac平台下  
                mac: (agent.indexOf('macintosh') > -1),
                //检测当前浏览器是否处于“怪异模式”下  
                quirks: (document.compatMode == 'BackCompat')
            };
        //检测当前浏览器内核是否是gecko内核  
        browser.gecko = (navigator.product == 'Gecko' && !browser.webkit && !browser.opera && !browser.ie);
        var version = 0;
        // Internet Explorer 6.0+  
        if (browser.ie) {
            var v1 = agent.match(/(?:msie\s([\w.]+))/);
            var v2 = agent.match(/(?:trident.*rv:([\w.]+))/);
            if (v1 && v2 && v1[1] && v2[1]) {
                version = Math.max(v1[1] * 1, v2[1] * 1);
            } else if (v1 && v1[1]) {
                version = v1[1] * 1;
            } else if (v2 && v2[1]) {
                version = v2[1] * 1;
            } else {
                version = 0;
            }
            //检测浏览器模式是否为 IE11 兼容模式  
            browser.ie11Compat = document.documentMode == 11;
            //检测浏览器模式是否为 IE9 兼容模式  
            browser.ie9Compat = document.documentMode == 9;
            //检测浏览器模式是否为 IE10 兼容模式  
            browser.ie10Compat = document.documentMode == 10;
            //检测浏览器是否是IE8浏览器  
            browser.ie8 = !!document.documentMode;
            //检测浏览器模式是否为 IE8 兼容模式  
            browser.ie8Compat = document.documentMode == 8;
            //检测浏览器模式是否为 IE7 兼容模式  
            browser.ie7Compat = ((version == 7 && !document.documentMode) || document.documentMode == 7);
            //检测浏览器模式是否为 IE6 模式 或者怪异模式  
            browser.ie6Compat = (version < 7 || browser.quirks);
            browser.ie9above = version > 8;
            browser.ie9below = version < 9;
        }
        // Gecko.  
        if (browser.gecko) {
            var geckoRelease = agent.match(/rv:([\d\.]+)/);
            if (geckoRelease) {
                geckoRelease = geckoRelease[1].split('.');
                version = geckoRelease[0] * 10000 + (geckoRelease[1] || 0) * 100 + (geckoRelease[2] || 0) * 1;
            }
        }
        //检测当前浏览器是否为Chrome, 如果是，则返回Chrome的大版本号  
        if (/chrome\/(\d+\.\d)/i.test(agent)) {
            browser.chrome = +RegExp['\x241'];
        }
        //检测当前浏览器是否为Safari, 如果是，则返回Safari的大版本号  
        if (/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(agent) && !/chrome/i.test(agent)) {
            browser.safari = +(RegExp['\x241'] || RegExp['\x242']);
        }
        // Opera 9.50+  
        if (browser.opera)
            version = parseFloat(opera.version());
        // WebKit 522+ (Safari 3+)  
        if (browser.webkit)
            version = parseFloat(agent.match(/ applewebkit\/(\d+)/)[1]);
        //检测当前浏览器版本号  
        browser.version = version;
        return browser;
    },
    test: function(val) {
        console.log(val + 'cmf')
    },

}